package com.smedi.ismedi.constructionproject.core.application.service;

import com.smedi.ismedi.constructionproject.api.dto.request.ProjectBasicUpdateRequest;
import com.smedi.ismedi.constructionproject.core.application.command.ConstructionProjectUpdateCommand;
import com.smedi.ismedi.constructionproject.core.application.command.ProjectBasicCommand;
import com.smedi.ismedi.constructionproject.core.application.command.ProjectBasicUpdateCommand;
import com.smedi.ismedi.constructionproject.core.domain.aggregatemodel.ProjectBasic;

import java.time.LocalDate;

/**
 * @Author: xulinjun
 * @Date: 2021-6-21 10:25
 */
public interface ConstructionProjectApplicationService {
    ProjectBasic saveProjectBasicInfo(ProjectBasicCommand projectBasicCommand);
    Boolean updateProjectBasicInfo(ProjectBasicUpdateCommand projectBasicCommand);

    boolean validateHrOrgHasProject(Long hrOrganizationId);

    boolean validateProject(Long projectId);

    void deleteProjectAllInfos(Long projectId);

    ProjectBasic postSaveVividProgress(Long projectId, int vividProgress, LocalDate vividProgressUpdatedDate);

    ProjectBasic postSaveRegionPicture(Long projectId, String regionPicture);
    
    ProjectBasic postSaveOrganizationPicture(Long projectId, String organizationPicture);
    
    ProjectBasic postSaveEntrustBook(Long projectId, String entrustBook);

    ProjectBasic postSaveMonitorType(Long projectId,String monitorType,String monitorTypeNote);

    long updateProjectByName(ConstructionProjectUpdateCommand command);


}
